<?php

function _redirect($url){
    header("location:$url");
	exit;
}
function redirect($a){
	if (is_array($a)) $a = implode('/', $a);
	_redirect("/$a");
}

/**
 * 时间差管理
 * datetime1 - datetime2 = '5天13小时25分05秒'
*/
function timediff($secs){
	$sign = ''; $s = '';
	if ($secs < 0) { $secs =  -$secs;  $sign = '负';}
	$n = $secs % 60; $secs = intval($secs / 60); $s = "{$n}秒";
	if ($secs == 0) return $sign . $s;
	$n = $secs % 60; $secs = intval($secs / 60); $s = "{$n}分{$s}";
	if ($secs == 0) return $sign . $s;
	$n = $secs % 24; $secs = intval($secs / 24); $s = "{$n}小时{$s}";
	if ($secs == 0) return $sign . $s;
	return $sign . "{$secs}天" . $s;
}

/**
 * session管理函数
 * @param string|array $name session名称 如果为数组则表示进行session设置
 * @param mixed $value session值
 * @return mixed
 */
function session($name,$value='') {
	if('' === $value){ 
        if(0===strpos($name,'[')) { // session 操作
            if('[pause]'==$name){ // 暂停session
                session_write_close();
            }elseif('[start]'==$name){ // 启动session
                session_start();
            }elseif('[destroy]'==$name){ // 销毁session
                $_SESSION =  array();
                session_unset();
                session_destroy();
            }elseif('[regenerate]'==$name){ // 重新生成id
                session_regenerate_id();
            }
        }elseif(0===strpos($name,'?')){ // 检查session
            $name   =  substr($name,1);
			return isset($_SESSION[$name]);
        }elseif(is_null($name)){ // 清空session
			$_SESSION = array();
        }else{
            return isset($_SESSION[$name])?$_SESSION[$name]:null;
        }
    }elseif(is_null($value)){ // 删除session
		unset($_SESSION[$name]);
    }else{ // 设置session
		$_SESSION[$name]  =  $value;
    }
}

/**
 * session 数组管理，往数组里加内容
 * */
function sessiona($name, $value){
    if(! is_null($value)) $_SESSION[$name] []=  $value;
}


/**
 * Cookie 设置、获取、删除
 * @param string $name cookie名称
 * @param mixed $value cookie值
 * @param mixed $options cookie参数
 * @return mixed
 */
function cookie($name, $value='') {
    // 默认设置
    $config = array(
        'expire'    =>  0, // cookie 保存时间
        'path'      =>  '/', // cookie 保存路径
        'domain'    =>  '', // cookie 有效域名
    );
	
    // 清除指定前缀的所有cookie
    if (is_null($name)) { return $_COOKIE = array(); }
    if ('' === $value) {
        if(isset($_COOKIE[$name])){
            $value =    $_COOKIE[$name];
            if(0===strpos($value,'wharr:')){
                $value  =   substr($value,6);
                return array_map('urldecode',json_decode(MAGIC_QUOTES_GPC?stripslashes($value):$value,true));
            }else{
                return $value;
            }
        }else{
            return null;
		}
    } else {
        if (is_null($value)) {
            setcookie($name, '', time() - 3600, $config['path'], $config['domain']);
            unset($_COOKIE[$name]); // 删除指定cookie
        } else {
            // 设置cookie
            if(is_array($value)){
                $value  = 'wharr:'.json_encode(array_map('urlencode',$value));
            }
            $expire = !empty($config['expire']) ? time() + intval($config['expire']) : 0;
            setcookie($name, $value, $expire, $config['path'], $config['domain']);
            $_COOKIE[$name] = $value;
        }
    }
}
